package com.ruoyi.base.service;

import cn.hutool.core.lang.tree.Tree;
import com.ruoyi.base.domain.SyYj;
import com.ruoyi.base.domain.vo.SyYjDetailVo;
import com.ruoyi.base.domain.vo.SyYjVo;
import com.ruoyi.base.domain.bo.SyYjBo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.sycs.domain.SycsDataDetail;

import java.util.Collection;
import java.util.List;

/**
 * 试验依据Service接口
 *
 * @author zyb
 * @date 2024-04-12
 */
public interface ISyYjService {

    /**
     * 查询试验依据
     */
    SyYjVo queryById(Long syYjId);


    /**
     * 查询试验依据列表
     */
    List<SyYjVo> queryList(SyYjBo bo);

    /**
     * 新增试验依据
     */
    Boolean insertByBo(SyYjBo bo);

    /**
     * 修改试验依据
     */
    Boolean updateByBo(SyYjBo bo);

    /**
     * 校验并批量删除试验依据信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 查询依据树结构信息
     *
     * @param yj 依据信息
     * @return 依据树信息集合
     */
    List<Tree<Long>> selectYjTreeList(SyYj yj);

    /**
     * 获取依据子集/明细
     * @param yj
     * @param pageQuery
     * @return
     */
    SyYjDetailVo listByYjId(SyYj yj, PageQuery pageQuery);

    /**
     * 根据上级id获取最大排序
     * @param parentId
     * @return
     */
    Integer getMaxSortByParentId(Long parentId);
}
